#include "CardButton.h"

/**
 * @brief CardButton::CardButton
 * @param img_path
 * @param label
 * @param destation
 * 卡片按钮的ui实现
 */
CardButton::CardButton(QString img_path, QString label, Route destation)
    : QPushButton()  // 基类构造函数
{
    this->icon_path = img_path;
    this->label = label;
    this->destation = destation;

    // 创建图标标签
    QLabel *iconLabel = new QLabel(this);
    QIcon icon = QIcon(img_path);
    iconLabel->setPixmap(icon.pixmap(80, 80));  // 设置图标大小
    iconLabel->setAlignment(Qt::AlignCenter);

    // 创建文本标签
    QLabel *textLabel = new QLabel(label, this);
    textLabel->setAlignment(Qt::AlignCenter);
    textLabel->setStyleSheet("color: #333; font-size: 14px; font-weight: bold;");  // 设置字体颜色和样式

    // 创建垂直布局并添加图标和文本
    QVBoxLayout *layout = new QVBoxLayout(this);
    layout->setSpacing(5);  // 设置布局间距
    layout->addWidget(iconLabel);
    layout->addWidget(textLabel);

    // 设置按钮的布局
    setLayout(layout);
    this->setFixedSize(180, 280);

    // 设置按钮样式
    setStyleSheet(""
                  "QPushButton {"
                  " background-color: #c0c0c0; "  // 更深的灰色背景
                  " border: 2px solid #a0a0a0; "  // 更深的灰色边框
                  " border-radius: 12px; "
                  " padding: 5px; "
                  "}");

    // 添加阴影效果
    shadowEffect = new QGraphicsDropShadowEffect(this);
    shadowEffect->setBlurRadius(15);          // 初始模糊半径
    shadowEffect->setOffset(6, 6);            // 初始阴影偏移
    shadowEffect->setColor(QColor(50, 50, 50, 160)); // 初始灰色阴影
    setGraphicsEffect(shadowEffect);

    // 绑定事件
    connect(this, &QPushButton::clicked, this, &CardButton::onButtonClicked);
}

void CardButton::onButtonClicked(){
    MyNavigationController::instance().navigateToPage(this -> destation);
}
